module MarcacionesHelper

  def clear_inputs(opts={})
    opts[:padre_id]="#"+opts[:padre_id] unless opts[:padre_id].blank?
    html=<<HTML
    <script type="text/javascript">
    function clearInputs(){$("#{opts[:padre_id]} input").each(function(){$(this).val('')});};
    </script>
HTML
    html
  end
  def links_borrar_marcacion(marcaciones)
    titulo="Eliminar esta marcaci&oacute;n"
    marcaciones.map{|m| link_marcacion(m,:campo=>:hora,:imagen=>:cancel,:title=>titulo,:type=>'delete')}.join(" <br/> ")
  end

  def links_agregar_marcacion(i)
    if (i.incompleta? or i.marcaciones.blank?)
      titulo="Agregar esta marcaci&oacute;n "
      i.horarios.map do |m|
        link_marcacion(m,:codigo=>i.usuario.codigo,:fecha=>i.fecha.to_s,:campo=>:inicio,:imagen=>:clock,:title=>titulo,:type=>'create')+"<br/>"+
          link_marcacion(m,:codigo=>i.usuario.codigo,:fecha=>i.fecha.to_s,:campo=>:fin,:imagen=>:clock,:title=>titulo,:type=>'create')
      end.join(" <br/> ")
    else
      i.horarios.map{|m| "#{l(m.inicio,:format=>:time)}<br/>#{l(m.fin,:format=>:time)}"}.join("<br/>")
    end
  end

  def link_marcacion(m,opts={})
    hora=l(m.send(opts[:campo]),:format=>:time)
    link=case opts[:type]
    when  "create"
      image_tag "clock.png",
        :title=>"Agregar la marcaci&oacute;n #{hora}",
        :onclick=>"if(confirm('Agregar la marcaci&oacute;n #{hora}?')){agregar_marcacion(#{opts[:codigo]},'#{opts[:fecha]}','#{hora}',this.parentNode.parentNode.id)}"
    when  "delete"
      image_tag "cancel.png",
        :title=>"Borrar la marcaci&oacute;n #{hora}",
        :onclick=>"if(confirm('Borrar la marcaci&oacute;n #{hora}?')){borrar_marcacion(#{m.id},this.parentNode.parentNode.id)}"
    else
      ''
    end

    hora+link
  end
  # DEFAULTS: celda_coloreada?(parametro,valor=nil,color_true="green",color_false="red",width=5)
  def celda_coloreada?(parametro,opts={})
    opts[:width]||="5%"
    opts[:valor]||=nil
    opts[:invert_colors]||=false
    opts[:color_true]||=  opts[:invert_colors] ? "red" : "green"
    opts[:color_false]||= opts[:invert_colors] ? "green": "red"
    opts[:valor] = opts[:valor].blank? ? sino(!parametro.blank?) : opts[:valor]
    color= parametro.blank? ? opts[:color_false] : opts[:color_true]
    html=<<HTML
    <td style="width: #{opts[:width]};color:#{color}">#{opts[:valor]}</td>
HTML
    html
  end

  def horas_trabajadas(dia_marcacion)
    dia_marcacion.autorizacion ? link_horas_extras_autorizacion(dia_marcacion) : dia_marcacion.horas_trabajadas
  end

  def link_horas_extras_autorizacion(dia_marcacion)
    html=<<HTML
    <span>#{dia_marcacion.horas_trabajadas}</span>
    #{link_autorizacion(dia_marcacion.autorizacion)}
HTML
    html
  end

  def link_autorizacion(autorizacion)
    #{link_to 'Autorizacion',autorizacion_path(autorizacion,:colorbox=>true),:onclick=>"return popitup(this)"}
    html=<<HTML  
    #{link_to 'Autorizacion',autorizacion_path(autorizacion),:onclick=>"return popitup(this)"}
HTML
    html
  end
  
  def popitup
    html=<<HTML
     <script language="javascript" type="text/javascript">
      function popitup(url){
            newwindow=window.open(url,'name','height=auto,width=auto');
            if (window.focus){newwindow.focus()}
            return false;
      };
    </script>
HTML
    html
  end
end
